The present invention relates generally to the field of software development, and more particularly to testing or debugging software.
Testing software involves verifying that the software behaves correctly in error situations. To properly recreate error situations, a user needs to inject an error or to create a timing delay. One conventional manner of recreating error situations is to add a custom scaffolding to a module (also sometimes called a program or a computer code) being tested. A custom scaffold is test code that can be removed after testing. However, removing the custom scaffold alters the module (in size and processing flow) and can affect the behavior of the module. Similar to a custom scaffold, permanent test code is added to a module. Permanent test code can be activated (for testing) or deactivated (for production) by altering configuration options. Permanent test code increases the size of the module and can slow performance of the module. Additionally, both a custom scaffold and permanent test code require advanced knowledge of where testing or debugging is required within a module. A third manner of recreating error situations is virtualization. However, virtualization does not test the module on actual hardware, only virtual hardware.